/**
 * 
 */
package org.mhz.sit.util;

/**
 * @author Mahan
 *
 * Constants
 */
public final class Constants
{
        
    /**
     * Private constants
     */
    private Constants()
    {
        
    }
    
    // FXML
    public static final String SPEAK_IN_TIME_FXML = "speakInTime.fxml";
    public static final String CONFIG_SETTINGS_FXML = "configAndSettings.fxml";
    public static final String ALERT_FXML = "alert.fxml";
    public static final String CONFIRM_FXML = "confirm.fxml";
    public static final String SPEAK_IN_TIME_TITLE = "Speak In Time";
    public static final String CONFIG_SETTINGS_TITLE = "Configuration & Settings";
    public static final String ALERT_TITLE = "Alert";
    public static final String CONFIRM_TITLE = "Confirm";
    
    // FX properties
    public static final String SPEAKER_ID_PROP = "id";
    public static final String SPEAKER_NAME_PROP = "name";
    
    // styles
    public static final String MAIN_STYLESHEET = "speakInTime.css";
    public static final String FIELD_ERROR_CLASS = "fieldError";
    public static final String FIELD_CLASS = "field";
    public static final String NORMAL_TIME = "normalTime";
    public static final String WARNING = "warning";
    public static final String OVER_TIME = "overTime";
    
    // Exceptions
    public static final String SIT_001_INVALID_VALUE_ENTERED = "SIT_001: Invalid value was entered. Please try again.";
    public static final String SIT_002_AT_LEAST_TWO_CHARS = "SIT_002: Must contain at least two characters. Please try again.";
    public static final String SIT_003_VALUE_ALREADY_EXISTS = "SIT_003: The value already exists. Please try again.";
    public static final String SIT_004_MORE_THAN_ONE_MATCH = "SIT_004: Found more than one match:\n\n";
    public static final String SIT_005_COULD_NOT_FIND = "SIT_005: Could not find a match";
    public static final String SIT_006_NO_CONFIGURED_SPEAKERS = "SIT_006: No speakers have been configured.";
    public static final String SIT_007_FIELD_MUST_NOT_BE_BLANK = "SIT_007: Field must not be blank.";
    public static final String SIT_008_MUST_SELECT_AN_ITEM = "SIT_008: You must select an item.";
    
    public static final String SIT_990_COULD_NOT_RETRIEVE_DATA = "SIT_990: Unfortunately the required data could not be retrieved.";
    public static final String SIT_991_ROLLBACK_OCCURRED = "SIT_991: Unfotunately the action could not be performed."; 
    public static final String SIT_999_ACTION_NOT_FULLY_COMPLETED = "SIT_999: Unfortunately the action could not fully complete. " 
                                                                    + "\n\nPlease close the application and try again or contact support.";

    // Tooltips
    public static final String MUST_BE_A_NUMBER = "Must be a number!";
    public static final String MUST_BE_AT_LEAST_2_CHARS = "Must be at least two characters!";
    
    // Settings
    public static final String LANGUAGE = "LANGUAGE";
    public static final String TIME_LIMIT = "TIME_LIMIT";
    public static final String TOPIC = "TOPIC";
    public static final String ENGLISH = "English";
    public static final String FIVE = "5";
    
    // Time 
    public static final String START_TIME = "00:00";
    public static final char ZERO_PADDING = '0';
    public static final String TIME_SEPARATOR = ":";
    public static final int TIME_UNIT_LENGHT = 2;
    public static final int END_OF_MINUTE = 59;
    public static final int ONE_SEC_IN_MS = 1000;
    public static final int FADE_DURATION = 1500;
    
    // Speakers
    public static final String SPEAKER_ORDER_LIST = "SpeakerOrderList";
    public static final String OFF_TOPIC_ORDER_LIST = "OffTopicSpeakerOrderList";
        
    public static final int ZERO = 0;
    public static final String BACKGROUND = "#dfdfdf";
    public static final double FULL_OPACITY = 1.0;
    public static final double NO_OPACITY = 0.0;
}
